tinyvec_string
tinyvec
based string types.
tinyvec_string
provides two string types:
ArrayString
, a string backed by a fixed-size array on the stack, usingArrayVec
TinyString
, a string backed by either a fixed-size array on the stack or aVec
on the heap
Features
Like tinyvec
, tinyvec_string
is no_std
by default.
ArrayString
has no dependencies (other than tinyvec
and core
).
TinyString
requires the the alloc
cargo feature to be enabled because
it has a dependency on alloc
:
[]
= { = "0.3.2", = ["alloc"] }
Error types implement std::error::Error
when the std
feature is
enabled.
The rustc_1_40
feature enables tinyvec
's rustc_1_40
feature, which enables
some optimizations for Rust versions >= 1.40.
The rustc_1_55
feature enables usage of const generics to allow usage of
backing arrays of any size.
The rustc_1_57
feature enables TinyString::try_reserve
and
TinyString::try_reserve_exact
.
Safety
This crate strives to be as safe as possible. Almost all internal unsafe
code is copied verbatim from std
's String
implementation for maximum
reliability and performance.
MSRV
Like tinyvec
, tinyvec_string
(without rustc
version features) supports
Rust 1.34+. The alloc
feature requires Rust 1.36+.
Contributing
Feel free to open an issue if you have a problem, or open a pull request if you have a solution. Also feel free to reach me on the Rust Community Discord Server @ThatsNoMoon#0175.
License
tinyvec_string
is dual-licensed under Apache-2.0 and MIT. Large sections of
code, documentation, and tests were copied verbatim or copied and modified from
rust-lang/rust; copyright for such content
belongs to the original author.